// 微信js-sdk
import jweixin from "@/components/jweixin-module/lib/index.js"
import { weixinJssdk, wxSubmitOrder, wxSdkPay } from '@/utils/api.js'
// import jsrsasign from 'jsrsasign'
export default {  
    //判断是否在微信中    
    isWechat() {  
        let ua = window.navigator.userAgent.toLowerCase();  
        if (ua.match(/micromessenger/i) == 'micromessenger') { 
            return true;  
        } else {  
          return false;  
        }  
    }, 
    // 判断是否在企业微信中
    isEnterprise() {
      let ua = window.navigator.userAgent.toLowerCase();
      if (ua.match(/wxwork/i) == 'wxwork') { 
          return true;  
      } else {  
        return false;  
      }  
    },
    initJssdk:function(callback){  
        var uri = encodeURIComponent(window.location.href.split('#')[0]);//获取当前url然后传递给后台获取授权和签名信息  
        weixinJssdk({
          url:location.href.split('#')[0],
          appName: 'shuidisw_mp'
        }).then( res => {
          //返回需要的参数appId,timestamp,noncestr,signature等
          //注入config权限配置 
          jweixin.config({
              debug: false,  
              appId: res.appId,  
              timestamp: res.timestamp,  
              nonceStr: res.nonceStr,  
              signature: res.signature,  
              jsApiList: [//这里是需要用到的接口名称  
                  'checkJsApi',//判断当前客户端版本是否支持指定JS接口
                  'updateAppMessageShareData',
                  'updateTimelineShareData',
                  'onMenuShareAppMessage',//分享接口  
                  'onMenuShareTimeline',
                  'getLocation',//获取位置  
                  'openLocation',//打开位置  
                  'scanQRCode',//扫一扫接口  
                  'chooseWXPay',//微信支付  
                  'chooseImage',//拍照或从手机相册中选图接口  
                  'previewImage',//预览图片接口  
                  'uploadImage'//上传图片  
              ],
              openTagList: [
                'wx-open-subscribe', // 订阅号通知按钮标签
                'wx-open-launch-app', // 跳转app标签
                'wx-open-launch-weapp', // 跳转小程序标签
              ]
          }); 
           // jweixin.ready(() => {
           //   callback(res);  
           //  });
          if (callback) {
            callback(res);  
          }  
        }) 
    }, 
    //微信支付
    async wxpay(data,successCallBack, failCallBack, cancelBack) {
        if (!this.isWechat()) {  
          return;  
        }
        const payRes = await wxSdkPay(data) // 请求支付接口
        const payData = JSON.parse(payRes.parameter)
        this.initJssdk(function(res) {
          var readyCallbak = function() {  
                jweixin.chooseWXPay({ 
                  timestamp:payData.timeStamp,// 支付签名时间戳，注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符  
                  nonceStr:payData.nonceStr,  // 支付签名随机串，不长于 32 位  
                  package:payData.package,  // 统一支付接口返回的prepay_id参数值，提交格式如：prepay_id=\*\*\*）
                  signType:payData.signType,  // 签名方式，默认为'SHA1'，使用新版支付需传入'MD5'  
                  paySign:payData.paySign ,// 支付签名  
                  success: successCallBack, // 成功事件
                  fail: failCallBack, // 失败事件
                  cancel: cancelBack // 取消事件
                })
            };
            jweixin.ready(readyCallbak);
        })
    },
    // 分享
    	share(data, callback) {
    		if (!this.isWechat()) {
    			return;
    		}
    		this.initJssdk(function(res) {
    			jweixin.ready(function() {
    				var shareData = {
    					title: data.title,
    					desc: data.desc,
    					link: data.link,
    					imgUrl: data.imgUrl,
    					success: function(res) {
    						callback(res)
    						// 分享后的一些操作,比如分享统计等等
    					},
    					cancel: function(res) {
              }
    				};
    				jweixin.onMenuShareTimeline(shareData);
    				jweixin.onMenuShareAppMessage(shareData);
    			})
    		})
    	},
      
      
    // 扫一扫
    scanQRCode(scanCallBack) {
    	if (!this.isWechat()) {
    		return;
    	}
    	this.initJssdk(function(res) {
    		jweixin.scanQRCode({
    		  needResult: 0, // 默认为0，扫描结果由微信处理，1则直接返回扫描结果，
    		  scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码，默认二者都有
          success: scanCallBack, // 成功事件
    		})
    	})
    },
    
    // 用户行为上报服务器
    unseBehavior(type) {
      console.log('当前地址是：',window.location.href)
      let pathQuery = ''
      if(window.location.href.split('?')[1]){
        pathQuery = '?'+ window.location.href.split('?')[1]
      }
      let params = {
        Action: type ? type : 'Page.Open', // 用户行为类型
        Url: window.location.href.split('?')[0],
        PathQueryString: pathQuery, // 地址参数
        Properties:""
      }
      uni.request({
          url: 'https://openapi.dbz100.com/api/rmserver/sreport/report-h5',
          data: params,
          header: {
          	'Authorization': uni.getStorageSync('authorization'),
          	'Accept': 'application/json',
          	'Content-Type': 'application/json',
          },
          method: "POST",
          success: (response) => {
              if (response.statusCode == 200) {
                 
              } else {
                
                 
              }
          },
          fail: (error) => {
      			// wx.hideLoading()
              if (error && error.response) {
                 
              }
          }
      })
    },
    // 解析token
   // decodeToken(token) {
   //    let obj = null
   //    if (token !== '') {
   //      const payload = jsrsasign.KJUR.jws.JWS.parse(token)
   //      if (payload.hasOwnProperty('payloadObj')) {
   //        obj = payload.payloadObj
   //      }
   //    }
   //    return obj
   //  },
    
    // 判断访问的终端
    browser:{
        versions:function(){
            var u = navigator.userAgent, app = navigator.appVersion;
            return {
                trident: u.indexOf('Trident') > -1, //IE内核
                presto: u.indexOf('Presto') > -1, //opera内核
                webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
                gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1,//火狐内核
                mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端
                ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
                android: u.indexOf('Android') > -1 || u.indexOf('Adr') > -1, //android终端
                iPhone: u.indexOf('iPhone') > -1 , //是否为iPhone或者QQHD浏览器
                iPad: u.indexOf('iPad') > -1, //是否iPad
                webApp: u.indexOf('Safari') == -1, //是否web应该程序，没有头部与底部
                weixin: u.indexOf('MicroMessenger') > -1, //是否微信 （2015-01-22新增）
                qq: u.match(/\sQQ/i) == " qq" //是否QQ
            };
        }(),
        language:(navigator.browserLanguage || navigator.language).toLowerCase()
    }
}